home *** CD-ROM | disk | FTP | other *** search
/ Champak Vol E-12 / (Vol E-12) May 21 2012.iso / interface / it.dig / scripts / %3Cdefault package%3E / FScrollBarSymbol.as next >
Encoding:
Text File  |  2012-05-21  |  13.3 KB  |  388 lines

  1. FScrollBarClass = function()
  2. {
  3.    var _loc1_ = this;
  4.    if(_loc1_._height != 4)
  5.    {
  6.       _loc1_.init();
  7.       _loc1_.minPos = _loc1_.maxPos = _loc1_.pageSize = _loc1_.largeScroll = 0;
  8.       _loc1_.smallScroll = 1;
  9.       _loc1_.width = !_loc1_.horizontal ? _loc1_._height : _loc1_._width;
  10.       _loc1_._xscale = _loc1_._yscale = 100;
  11.       _loc1_.setScrollPosition(0);
  12.       _loc1_.tabEnabled = false;
  13.       if(_loc1_._targetInstanceName.length > 0)
  14.       {
  15.          _loc1_.setScrollTarget(_loc1_._parent[_loc1_._targetInstanceName]);
  16.       }
  17.       _loc1_.tabChildren = false;
  18.       _loc1_.setSize(_loc1_.width);
  19.    }
  20. };
  21. FScrollBarClass.prototype = new FUIComponentClass();
  22. FScrollBarClass.prototype.setHorizontal = function(flag)
  23. {
  24.    var _loc1_ = this;
  25.    var _loc2_ = flag;
  26.    if(_loc1_.horizontal && !_loc2_)
  27.    {
  28.       _loc1_._xscale = 100;
  29.       _loc1_._rotation = 0;
  30.    }
  31.    else if(_loc2_ && !_loc1_.horizontal)
  32.    {
  33.       _loc1_._xscale = -100;
  34.       _loc1_._rotation = -90;
  35.    }
  36.    _loc1_.horizontal = _loc2_;
  37. };
  38. FScrollBarClass.prototype.setScrollProperties = function(pSize, mnPos, mxPos)
  39. {
  40.    var _loc1_ = this;
  41.    if(_loc1_.enable)
  42.    {
  43.       _loc1_.pageSize = pSize;
  44.       _loc1_.minPos = Math.max(mnPos,0);
  45.       _loc1_.maxPos = Math.max(mxPos,0);
  46.       _loc1_.scrollPosition = Math.max(_loc1_.minPos,_loc1_.scrollPosition);
  47.       _loc1_.scrollPosition = Math.min(_loc1_.maxPos,_loc1_.scrollPosition);
  48.       if(_loc1_.maxPos - _loc1_.minPos <= 0)
  49.       {
  50.          _loc1_.scrollThumb_mc.removeMovieClip();
  51.          _loc1_.upArrow_mc.gotoAndStop(3);
  52.          _loc1_.downArrow_mc.gotoAndStop(3);
  53.          _loc1_.downArrow_mc.onPress = _loc1_.downArrow_mc.onRelease = _loc1_.downArrow_mc.onDragOut = null;
  54.          _loc1_.upArrow_mc.onPress = _loc1_.upArrow_mc.onRelease = _loc1_.upArrow_mc.onDragOut = null;
  55.          _loc1_.scrollTrack_mc.onPress = _loc1_.scrollTrack_mc.onRelease = null;
  56.          _loc1_.scrollTrack_mc.onDragOut = _loc1_.scrollTrack_mc.onRollOut = null;
  57.          _loc1_.scrollTrack_mc.useHandCursor = false;
  58.       }
  59.       else
  60.       {
  61.          var _loc2_ = _loc1_.getScrollPosition();
  62.          _loc1_.upArrow_mc.gotoAndStop(1);
  63.          _loc1_.downArrow_mc.gotoAndStop(1);
  64.          _loc1_.upArrow_mc.onPress = _loc1_.upArrow_mc.onDragOver = _loc1_.startUpScroller;
  65.          _loc1_.upArrow_mc.onRelease = _loc1_.upArrow_mc.onDragOut = _loc1_.stopScrolling;
  66.          _loc1_.downArrow_mc.onPress = _loc1_.downArrow_mc.onDragOver = _loc1_.startDownScroller;
  67.          _loc1_.downArrow_mc.onRelease = _loc1_.downArrow_mc.onDragOut = _loc1_.stopScrolling;
  68.          _loc1_.scrollTrack_mc.onPress = _loc1_.scrollTrack_mc.onDragOver = _loc1_.startTrackScroller;
  69.          _loc1_.scrollTrack_mc.onRelease = _loc1_.stopScrolling;
  70.          _loc1_.scrollTrack_mc.onDragOut = _loc1_.stopScrolling;
  71.          _loc1_.scrollTrack_mc.onRollOut = _loc1_.stopScrolling;
  72.          _loc1_.scrollTrack_mc.useHandCursor = false;
  73.          _loc1_.attachMovie("ScrollThumb","scrollThumb_mc",3);
  74.          _loc1_.scrollThumb_mc._x = 0;
  75.          _loc1_.scrollThumb_mc._y = _loc1_.upArrow_mc._height;
  76.          _loc1_.scrollThumb_mc.onPress = _loc1_.startDragThumb;
  77.          _loc1_.scrollThumb_mc.controller = _loc1_;
  78.          _loc1_.scrollThumb_mc.onRelease = _loc1_.scrollThumb_mc.onReleaseOutside = _loc1_.stopDragThumb;
  79.          _loc1_.scrollThumb_mc.useHandCursor = false;
  80.          _loc1_.thumbHeight = _loc1_.pageSize / (_loc1_.maxPos - _loc1_.minPos + _loc1_.pageSize) * _loc1_.trackSize;
  81.          _loc1_.thumbMid_mc = _loc1_.scrollThumb_mc.mc_sliderMid;
  82.          _loc1_.thumbTop_mc = _loc1_.scrollThumb_mc.mc_sliderTop;
  83.          _loc1_.thumbBot_mc = _loc1_.scrollThumb_mc.mc_sliderBot;
  84.          _loc1_.thumbHeight = Math.max(_loc1_.thumbHeight,6);
  85.          _loc1_.midHeight = _loc1_.thumbHeight - _loc1_.thumbTop_mc._height - _loc1_.thumbBot_mc._height;
  86.          _loc1_.thumbMid_mc._yScale = _loc1_.midHeight * 100 / _loc1_.thumbMid_mc._height;
  87.          _loc1_.thumbMid_mc._y = _loc1_.thumbTop_mc._height;
  88.          _loc1_.thumbBot_mc._y = _loc1_.thumbTop_mc._height + _loc1_.midHeight;
  89.          _loc1_.scrollTop = _loc1_.scrollThumb_mc._y;
  90.          _loc1_.trackHeight = _loc1_.trackSize - _loc1_.thumbHeight;
  91.          _loc1_.scrollBot = _loc1_.trackHeight + _loc1_.scrollTop;
  92.          _loc2_ = Math.min(_loc2_,_loc1_.maxPos);
  93.          _loc1_.setScrollPosition(Math.max(_loc2_,_loc1_.minPos));
  94.       }
  95.    }
  96. };
  97. FScrollBarClass.prototype.getScrollPosition = function()
  98. {
  99.    return this.scrollPosition;
  100. };
  101. FScrollBarClass.prototype.setScrollPosition = function(pos)
  102. {
  103.    var _loc1_ = this;
  104.    var _loc2_ = pos;
  105.    _loc1_.scrollPosition = _loc2_;
  106.    if(_loc1_.scrollThumb_mc != undefined)
  107.    {
  108.       _loc2_ = Math.min(_loc2_,_loc1_.maxPos);
  109.       _loc2_ = Math.max(_loc2_,_loc1_.minPos);
  110.    }
  111.    _loc1_.scrollThumb_mc._y = (_loc2_ - _loc1_.minPos) * _loc1_.trackHeight / (_loc1_.maxPos - _loc1_.minPos) + _loc1_.scrollTop;
  112.    _loc1_.executeCallBack();
  113. };
  114. FScrollBarClass.prototype.setLargeScroll = function(lScroll)
  115. {
  116.    this.largeScroll = lScroll;
  117. };
  118. FScrollBarClass.prototype.setSmallScroll = function(sScroll)
  119. {
  120.    this.smallScroll = sScroll;
  121. };
  122. FScrollBarClass.prototype.setEnabled = function(enabledFlag)
  123. {
  124.    var _loc1_ = this;
  125.    var _loc2_ = enabledFlag;
  126.    var _loc3_ = _loc1_.enable;
  127.    if(_loc2_ && !_loc3_)
  128.    {
  129.       _loc1_.enable = _loc2_;
  130.       if(_loc1_.textField != undefined)
  131.       {
  132.          _loc1_.setScrollTarget(_loc1_.textField);
  133.       }
  134.       else
  135.       {
  136.          _loc1_.setScrollProperties(_loc1_.pageSize,_loc1_.cachedMinPos,_loc1_.cachedMaxPos);
  137.          _loc1_.setScrollPosition(_loc1_.cachedPos);
  138.       }
  139.       _loc1_.clickFilter = undefined;
  140.    }
  141.    else if(!_loc2_ && _loc3_)
  142.    {
  143.       _loc1_.textField.removeListener(_loc1_);
  144.       _loc1_.cachedPos = _loc1_.getScrollPosition();
  145.       _loc1_.cachedMinPos = _loc1_.minPos;
  146.       _loc1_.cachedMaxPos = _loc1_.maxPos;
  147.       if(_loc1_.clickFilter == undefined)
  148.       {
  149.          _loc1_.setScrollProperties(_loc1_.pageSize,0,0);
  150.       }
  151.       else
  152.       {
  153.          _loc1_.clickFilter = true;
  154.       }
  155.       _loc1_.enable = _loc2_;
  156.    }
  157. };
  158. FScrollBarClass.prototype.setSize = function(hgt)
  159. {
  160.    var _loc1_ = this;
  161.    if(_loc1_._height != 1)
  162.    {
  163.       _loc1_.width = hgt;
  164.       _loc1_.scrollTrack_mc._yscale = 100;
  165.       _loc1_.scrollTrack_mc._yscale = 100 * _loc1_.width / _loc1_.scrollTrack_mc._height;
  166.       if(_loc1_.upArrow_mc == undefined)
  167.       {
  168.          _loc1_.attachMovie("UpArrow","upArrow_mc",1);
  169.          _loc1_.attachMovie("DownArrow","downArrow_mc",2);
  170.          _loc1_.downArrow_mc.controller = _loc1_.upArrow_mc.controller = _loc1_;
  171.          _loc1_.upArrow_mc.useHandCursor = _loc1_.downArrow_mc.useHandCursor = false;
  172.          var _loc0_ = null;
  173.          _loc1_.upArrow_mc._y = _loc0_ = 0;
  174.          ┬º┬ºpush(_loc1_.upArrow_mc);
  175.          ┬º┬ºpush("_x");
  176.       }
  177.       else
  178.       {
  179.          _loc1_.scrollTrack_mc.controller = _loc1_;
  180.          _loc1_.downArrow_mc._y = _loc1_.width - _loc1_.downArrow_mc._height;
  181.          _loc1_.trackSize = _loc1_.width - 2 * _loc1_.downArrow_mc._height;
  182.          if(_loc1_.textField != undefined)
  183.          {
  184.             _loc1_.onTextChanged();
  185.          }
  186.          else
  187.          {
  188.             _loc1_.setScrollProperties(_loc1_.pageSize,_loc1_.minPos,_loc1_.maxPos);
  189.          }
  190.       }
  191.    }
  192. };
  193. FScrollBarClass.prototype.scrollIt = function(inc, mode)
  194. {
  195.    var _loc1_ = this;
  196.    var _loc3_ = _loc1_.smallScroll;
  197.    if(inc != "one")
  198.    {
  199.       _loc3_ = _loc1_.largeScroll != 0 ? _loc1_.largeScroll : _loc1_.pageSize;
  200.    }
  201.    var _loc2_ = _loc1_.getScrollPosition() + mode * _loc3_;
  202.    if(_loc2_ > _loc1_.maxPos)
  203.    {
  204.       _loc2_ = _loc1_.maxPos;
  205.    }
  206.    else if(_loc2_ < _loc1_.minPos)
  207.    {
  208.       _loc2_ = _loc1_.minPos;
  209.    }
  210.    _loc1_.setScrollPosition(_loc2_);
  211. };
  212. FScrollBarClass.prototype.startDragThumb = function()
  213. {
  214.    var _loc1_ = this;
  215.    _loc1_.lastY = _loc1_._ymouse;
  216.    _loc1_.onMouseMove = _loc1_.controller.dragThumb;
  217. };
  218. FScrollBarClass.prototype.dragThumb = function()
  219. {
  220.    var _loc1_ = this;
  221.    _loc1_.scrollMove = _loc1_._ymouse - _loc1_.lastY;
  222.    _loc1_.scrollMove += _loc1_._y;
  223.    if(_loc1_.scrollMove < _loc1_.controller.scrollTop)
  224.    {
  225.       _loc1_.scrollMove = _loc1_.controller.scrollTop;
  226.    }
  227.    else if(_loc1_.scrollMove > _loc1_.controller.scrollBot)
  228.    {
  229.       _loc1_.scrollMove = _loc1_.controller.scrollBot;
  230.    }
  231.    _loc1_._y = _loc1_.scrollMove;
  232.    var _loc2_ = _loc1_.controller;
  233.    _loc2_.scrollPosition = Math.round((_loc2_.maxPos - _loc2_.minPos) * (_loc1_._y - _loc2_.scrollTop) / _loc2_.trackHeight) + _loc2_.minPos;
  234.    _loc1_.controller.isScrolling = true;
  235.    updateAfterEvent();
  236.    _loc1_.controller.executeCallBack();
  237. };
  238. FScrollBarClass.prototype.stopDragThumb = function()
  239. {
  240.    this.controller.isScrolling = false;
  241.    this.onMouseMove = null;
  242. };
  243. FScrollBarClass.prototype.startTrackScroller = function()
  244. {
  245.    var _loc1_ = this;
  246.    _loc1_.controller.trackScroller();
  247.    _loc1_.controller.scrolling = setInterval(_loc1_.controller,"scrollInterval",500,"page",-1);
  248. };
  249. FScrollBarClass.prototype.scrollInterval = function(inc, mode)
  250. {
  251.    var _loc1_ = this;
  252.    var _loc2_ = inc;
  253.    clearInterval(_loc1_.scrolling);
  254.    if(_loc2_ == "page")
  255.    {
  256.       _loc1_.trackScroller();
  257.    }
  258.    else
  259.    {
  260.       _loc1_.scrollIt(_loc2_,mode);
  261.    }
  262.    _loc1_.scrolling = setInterval(_loc1_,"scrollInterval",35,_loc2_,mode);
  263. };
  264. FScrollBarClass.prototype.trackScroller = function()
  265. {
  266.    var _loc1_ = this;
  267.    if(_loc1_.scrollThumb_mc._y + _loc1_.thumbHeight < _loc1_._ymouse)
  268.    {
  269.       _loc1_.scrollIt("page",1);
  270.    }
  271.    else if(_loc1_.scrollThumb_mc._y > _loc1_._ymouse)
  272.    {
  273.       _loc1_.scrollIt("page",-1);
  274.    }
  275. };
  276. FScrollBarClass.prototype.stopScrolling = function()
  277. {
  278.    var _loc1_ = this;
  279.    _loc1_.controller.downArrow_mc.gotoAndStop(1);
  280.    _loc1_.controller.upArrow_mc.gotoAndStop(1);
  281.    clearInterval(_loc1_.controller.scrolling);
  282. };
  283. FScrollBarClass.prototype.startUpScroller = function()
  284. {
  285.    var _loc1_ = this;
  286.    _loc1_.controller.upArrow_mc.gotoAndStop(2);
  287.    _loc1_.controller.scrollIt("one",-1);
  288.    _loc1_.controller.scrolling = setInterval(_loc1_.controller,"scrollInterval",500,"one",-1);
  289. };
  290. FScrollBarClass.prototype.startDownScroller = function()
  291. {
  292.    var _loc1_ = this;
  293.    _loc1_.controller.downArrow_mc.gotoAndStop(2);
  294.    _loc1_.controller.scrollIt("one",1);
  295.    _loc1_.controller.scrolling = setInterval(_loc1_.controller,"scrollInterval",500,"one",1);
  296. };
  297. FScrollBarClass.prototype.setScrollTarget = function(tF)
  298. {
  299.    var _loc1_ = this;
  300.    var _loc2_ = tF;
  301.    if(_loc2_ == undefined)
  302.    {
  303.       _loc1_.textField.removeListener(_loc1_);
  304.       delete _loc1_.textField[!_loc1_.horizontal ? "vScroller" : "hScroller"];
  305.       if(_loc1_.textField.hScroller != undefined && _loc1_.textField.vScroller != undefined)
  306.       {
  307.          _loc1_.textField.unwatch("text");
  308.          _loc1_.textField.unwatch("htmltext");
  309.       }
  310.    }
  311.    _loc1_.textField = undefined;
  312.    if(_loc2_ instanceof TextField)
  313.    {
  314.       _loc1_.textField = _loc2_;
  315.       _loc1_.textField[!_loc1_.horizontal ? "vScroller" : "hScroller"] = _loc1_;
  316.       _loc1_.onTextChanged();
  317.       _loc1_.onChanged = function()
  318.       {
  319.          this.onTextChanged();
  320.       };
  321.       _loc1_.onScroller = function()
  322.       {
  323.          var _loc1_ = this;
  324.          if(!_loc1_.isScrolling)
  325.          {
  326.             if(!_loc1_.horizontal)
  327.             {
  328.                _loc1_.setScrollPosition(_loc1_.textField.scroll);
  329.             }
  330.             else
  331.             {
  332.                _loc1_.setScrollPosition(_loc1_.textField.hscroll);
  333.             }
  334.          }
  335.       };
  336.       _loc1_.textField.addListener(_loc1_);
  337.       _loc1_.textField.watch("text",_loc1_.callback);
  338.       _loc1_.textField.watch("htmlText",_loc1_.callback);
  339.    }
  340. };
  341. FScrollBarClass.prototype.callback = function(prop, oldVal, newVal)
  342. {
  343.    var _loc1_ = this;
  344.    clearInterval(_loc1_.hScroller.synchScroll);
  345.    clearInterval(_loc1_.vScroller.synchScroll);
  346.    _loc1_.hScroller.synchScroll = setInterval(_loc1_.hScroller,"onTextChanged",50);
  347.    _loc1_.vScroller.synchScroll = setInterval(_loc1_.vScroller,"onTextChanged",50);
  348.    return newVal;
  349. };
  350. FScrollBarClass.prototype.onTextChanged = function()
  351. {
  352.    var _loc1_ = this;
  353.    if(!(!_loc1_.enable || _loc1_.textField == undefined))
  354.    {
  355.       clearInterval(_loc1_.synchScroll);
  356.       if(_loc1_.horizontal)
  357.       {
  358.          var _loc2_ = _loc1_.textField.hscroll;
  359.          _loc1_.setScrollProperties(_loc1_.textField._width,0,_loc1_.textField.maxhscroll);
  360.          _loc1_.setScrollPosition(Math.min(_loc2_,_loc1_.textField.maxhscroll));
  361.       }
  362.       else
  363.       {
  364.          _loc2_ = _loc1_.textField.scroll;
  365.          var _loc3_ = _loc1_.textField.bottomScroll - _loc1_.textField.scroll;
  366.          _loc1_.setScrollProperties(_loc3_,1,_loc1_.textField.maxscroll);
  367.          _loc1_.setScrollPosition(Math.min(_loc2_,_loc1_.textField.maxscroll));
  368.       }
  369.    }
  370. };
  371. FScrollBarClass.prototype.executeCallBack = function()
  372. {
  373.    var _loc1_ = this;
  374.    if(_loc1_.textField == undefined)
  375.    {
  376.       super.executeCallBack();
  377.    }
  378.    else if(_loc1_.horizontal)
  379.    {
  380.       _loc1_.textField.hscroll = _loc1_.getScrollPosition();
  381.    }
  382.    else
  383.    {
  384.       _loc1_.textField.scroll = _loc1_.getScrollPosition();
  385.    }
  386. };
  387. Object.registerClass("FScrollBarSymbol",FScrollBarClass);
  388.